function [i, v, q] = memristor(A, omega, q0, n)
    % memristor_model 计算内在状态 q，电压 v 和电流 i
    % 输入：
    %   A             - 电流源幅值
    %   omega         - 电流源频率
    %   q0            - 初始状态
    %   n             - 迭代步数
    %   transient_steps - 舍弃的暂态步数
    % 输出：
    %   i - 输入电流
    %   v - 输出电压
    %   q - 内在状态

    % 初始化
    i = A * sin(omega * n);  % 电流源 i_n
    q = zeros(1, length(n));  % 初始化内在状态
    v = zeros(1, length(n));  % 初始化输出电压

    % 设置初始状态
    q(1) = q0;

    % 计算内在状态q和输出电压v
    for j = 2:length(n)
        q(j) = q(j-1) - i(j);  % 更新内在状态
        v(j) = cos(q(j)) * i(j);  % 计算输出电压
    end
end
